package com.suzhenyu.sort;

/**
 * 选择排序
 * @author suzy2
 */
public class SelectSort implements Sort {
    /**
     * 首先初始化最小元素索引值为首元素，依次遍历待排序数列，
     * 若遇到小于该最小索引位置处的元素则刷新最小索引为该较小元素的位置，
     * 直至遇到尾元素，结束一次遍历，并将最小索引处元素与首元素交换；
     * 然后，初始化最小索引值为第二个待排序数列元素位置，
     * 同样的操作，可得到数列第二个元素即为次小元素；以此类推。
     * @param ints
     */
    @Override
    public void sort(int[] ints) {
        for (int i=0;i<ints.length;i++) {
            int min =i;
            for (int j=i;j<ints.length;j++) {
                  if(ints[min]>ints[j]){
                       min =j;
                  }
            }
            if(i<min){
                int tmp =ints[i];
                ints[i]=ints[min];
                ints[min]=tmp;
            }
        }
    }
}
